﻿/*
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀，返回空字符串 ""。

示例 1:
输入: ["flower","flow","flight"]
输出: "fl"

示例 2:
输入: ["dog","racecar","car"]
输出: ""

解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
*/

#include "AllInc.h"

class Solution 
{
public:
	string longestCommonPrefix(vector<string>& strs) 
	{
		if (strs.empty())
		{
			return "";
		}
		else if (strs.size() == 1)
		{
			return strs[0];
		}
		string result;

		char c = 0;
		int pos = 0;
		int num = strs.size();
		bool loop = true;

		while (loop)
		{
			for (size_t i = 0; i < num; i++)
			{
				string& str = strs[i];
				if (str == "" || pos > str.size() - 1)
				{
					loop = false;
					break;
				}

				if (i == 0)
				{
					c = str[pos];
				}
				else
				{
					if (str[pos] != c)
					{
						loop = false;
						break;
					}
				}
				if (i == num - 1)
				{
					result += c;
					pos++;
				}
			}
		}

		return result;
	}
};

//int main()
//{
//	Solution s;
//	vector<string> strs{ "flower","flow","flight" };
//	string result = s.longestCommonPrefix(strs);
//
//	return 0;
//}